{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1 style=\"color:blue;\" align=\"center\">Pandas Time Series Analysis Tutorial: date_range</h1>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>153.58</td>\n",
       "      <td>155.45</td>\n",
       "      <td>152.89</td>\n",
       "      <td>155.45</td>\n",
       "      <td>27770715</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>154.34</td>\n",
       "      <td>154.45</td>\n",
       "      <td>153.46</td>\n",
       "      <td>153.93</td>\n",
       "      <td>25331662</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>153.90</td>\n",
       "      <td>155.81</td>\n",
       "      <td>153.78</td>\n",
       "      <td>154.45</td>\n",
       "      <td>26624926</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>155.02</td>\n",
       "      <td>155.98</td>\n",
       "      <td>154.48</td>\n",
       "      <td>155.37</td>\n",
       "      <td>21069647</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     Open    High     Low   Close    Volume\n",
       "0  153.17  153.33  152.22  153.18  16404088\n",
       "1  153.58  155.45  152.89  155.45  27770715\n",
       "2  154.34  154.45  153.46  153.93  25331662\n",
       "3  153.90  155.81  153.78  154.45  26624926\n",
       "4  155.02  155.98  154.48  155.37  21069647"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv(\"aapl_no_dates.csv\")\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2016-06-01', '2016-06-02', '2016-06-03', '2016-06-06',\n",
       "               '2016-06-07', '2016-06-08', '2016-06-09', '2016-06-10',\n",
       "               '2016-06-13', '2016-06-14', '2016-06-15', '2016-06-16',\n",
       "               '2016-06-17', '2016-06-20', '2016-06-21', '2016-06-22',\n",
       "               '2016-06-23', '2016-06-24', '2016-06-27', '2016-06-28',\n",
       "               '2016-06-29', '2016-06-30'],\n",
       "              dtype='datetime64[ns]', freq='B')"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rng = pd.date_range(start=\"6/1/2016\",end=\"6/30/2016\",freq='B')\n",
    "rng"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2016-06-01</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-02</th>\n",
       "      <td>153.58</td>\n",
       "      <td>155.45</td>\n",
       "      <td>152.89</td>\n",
       "      <td>155.45</td>\n",
       "      <td>27770715</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-03</th>\n",
       "      <td>154.34</td>\n",
       "      <td>154.45</td>\n",
       "      <td>153.46</td>\n",
       "      <td>153.93</td>\n",
       "      <td>25331662</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-06</th>\n",
       "      <td>153.90</td>\n",
       "      <td>155.81</td>\n",
       "      <td>153.78</td>\n",
       "      <td>154.45</td>\n",
       "      <td>26624926</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-07</th>\n",
       "      <td>155.02</td>\n",
       "      <td>155.98</td>\n",
       "      <td>154.48</td>\n",
       "      <td>155.37</td>\n",
       "      <td>21069647</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              Open    High     Low   Close    Volume\n",
       "2016-06-01  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-02  153.58  155.45  152.89  155.45  27770715\n",
       "2016-06-03  154.34  154.45  153.46  153.93  25331662\n",
       "2016-06-06  153.90  155.81  153.78  154.45  26624926\n",
       "2016-06-07  155.02  155.98  154.48  155.37  21069647"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.set_index(rng, inplace=True)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3 style=\"color:purple\">Finding missing dates from datetimeindex</h3>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2016-06-01', '2016-06-02', '2016-06-03', '2016-06-04',\n",
       "               '2016-06-05', '2016-06-06', '2016-06-07', '2016-06-08',\n",
       "               '2016-06-09', '2016-06-10', '2016-06-11', '2016-06-12',\n",
       "               '2016-06-13', '2016-06-14', '2016-06-15', '2016-06-16',\n",
       "               '2016-06-17', '2016-06-18', '2016-06-19', '2016-06-20',\n",
       "               '2016-06-21', '2016-06-22', '2016-06-23', '2016-06-24',\n",
       "               '2016-06-25', '2016-06-26', '2016-06-27', '2016-06-28',\n",
       "               '2016-06-29', '2016-06-30'],\n",
       "              dtype='datetime64[ns]', freq='D')"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "daily_index = pd.date_range(start=\"6/1/2016\",end=\"6/30/2016\",freq='D')\n",
    "daily_index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2016-06-04', '2016-06-05', '2016-06-11', '2016-06-12',\n",
       "               '2016-06-18', '2016-06-19', '2016-06-25', '2016-06-26'],\n",
       "              dtype='datetime64[ns]', freq=None)"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "daily_index.difference(df.index)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3 style=\"color:purple\">Benefits of having DatetimeIndex</h3>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1b5d2a2ffd0>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1b5d5f2c358>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "df.Close.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "152.72125"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[\"2016-06-01\":\"2016-06-10\"].Close.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3 style=\"color:purple\">asfreq</h3>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2016-06-01', '2016-06-02', '2016-06-03', '2016-06-06',\n",
       "               '2016-06-07', '2016-06-08', '2016-06-09', '2016-06-10',\n",
       "               '2016-06-13', '2016-06-14', '2016-06-15', '2016-06-16',\n",
       "               '2016-06-17', '2016-06-20', '2016-06-21', '2016-06-22',\n",
       "               '2016-06-23', '2016-06-24', '2016-06-27', '2016-06-28',\n",
       "               '2016-06-29', '2016-06-30'],\n",
       "              dtype='datetime64[ns]', freq='B')"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2016-06-01</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-02</th>\n",
       "      <td>153.58</td>\n",
       "      <td>155.45</td>\n",
       "      <td>152.89</td>\n",
       "      <td>155.45</td>\n",
       "      <td>27770715</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-03</th>\n",
       "      <td>154.34</td>\n",
       "      <td>154.45</td>\n",
       "      <td>153.46</td>\n",
       "      <td>153.93</td>\n",
       "      <td>25331662</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-04</th>\n",
       "      <td>154.34</td>\n",
       "      <td>154.45</td>\n",
       "      <td>153.46</td>\n",
       "      <td>153.93</td>\n",
       "      <td>25331662</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-05</th>\n",
       "      <td>154.34</td>\n",
       "      <td>154.45</td>\n",
       "      <td>153.46</td>\n",
       "      <td>153.93</td>\n",
       "      <td>25331662</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-06</th>\n",
       "      <td>153.90</td>\n",
       "      <td>155.81</td>\n",
       "      <td>153.78</td>\n",
       "      <td>154.45</td>\n",
       "      <td>26624926</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-07</th>\n",
       "      <td>155.02</td>\n",
       "      <td>155.98</td>\n",
       "      <td>154.48</td>\n",
       "      <td>155.37</td>\n",
       "      <td>21069647</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-08</th>\n",
       "      <td>155.25</td>\n",
       "      <td>155.54</td>\n",
       "      <td>154.40</td>\n",
       "      <td>154.99</td>\n",
       "      <td>21250798</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-09</th>\n",
       "      <td>155.19</td>\n",
       "      <td>155.19</td>\n",
       "      <td>146.02</td>\n",
       "      <td>148.98</td>\n",
       "      <td>64882657</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-10</th>\n",
       "      <td>145.74</td>\n",
       "      <td>146.09</td>\n",
       "      <td>142.51</td>\n",
       "      <td>145.42</td>\n",
       "      <td>72307330</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-11</th>\n",
       "      <td>145.74</td>\n",
       "      <td>146.09</td>\n",
       "      <td>142.51</td>\n",
       "      <td>145.42</td>\n",
       "      <td>72307330</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-12</th>\n",
       "      <td>145.74</td>\n",
       "      <td>146.09</td>\n",
       "      <td>142.51</td>\n",
       "      <td>145.42</td>\n",
       "      <td>72307330</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-13</th>\n",
       "      <td>147.16</td>\n",
       "      <td>147.45</td>\n",
       "      <td>145.15</td>\n",
       "      <td>146.59</td>\n",
       "      <td>34165445</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-14</th>\n",
       "      <td>147.50</td>\n",
       "      <td>147.50</td>\n",
       "      <td>143.84</td>\n",
       "      <td>145.16</td>\n",
       "      <td>31531232</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-15</th>\n",
       "      <td>143.32</td>\n",
       "      <td>144.48</td>\n",
       "      <td>142.21</td>\n",
       "      <td>144.29</td>\n",
       "      <td>32165373</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-16</th>\n",
       "      <td>143.78</td>\n",
       "      <td>144.50</td>\n",
       "      <td>142.20</td>\n",
       "      <td>142.27</td>\n",
       "      <td>50361093</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-17</th>\n",
       "      <td>143.66</td>\n",
       "      <td>146.74</td>\n",
       "      <td>143.66</td>\n",
       "      <td>146.34</td>\n",
       "      <td>32541404</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-18</th>\n",
       "      <td>143.66</td>\n",
       "      <td>146.74</td>\n",
       "      <td>143.66</td>\n",
       "      <td>146.34</td>\n",
       "      <td>32541404</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-19</th>\n",
       "      <td>143.66</td>\n",
       "      <td>146.74</td>\n",
       "      <td>143.66</td>\n",
       "      <td>146.34</td>\n",
       "      <td>32541404</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-20</th>\n",
       "      <td>146.87</td>\n",
       "      <td>146.87</td>\n",
       "      <td>144.94</td>\n",
       "      <td>145.01</td>\n",
       "      <td>24900073</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-21</th>\n",
       "      <td>145.52</td>\n",
       "      <td>146.07</td>\n",
       "      <td>144.61</td>\n",
       "      <td>145.87</td>\n",
       "      <td>21265751</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-22</th>\n",
       "      <td>145.77</td>\n",
       "      <td>146.70</td>\n",
       "      <td>145.12</td>\n",
       "      <td>145.63</td>\n",
       "      <td>19106294</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-23</th>\n",
       "      <td>145.13</td>\n",
       "      <td>147.16</td>\n",
       "      <td>145.11</td>\n",
       "      <td>146.28</td>\n",
       "      <td>35439389</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-24</th>\n",
       "      <td>147.17</td>\n",
       "      <td>148.28</td>\n",
       "      <td>145.38</td>\n",
       "      <td>145.82</td>\n",
       "      <td>25692361</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-25</th>\n",
       "      <td>147.17</td>\n",
       "      <td>148.28</td>\n",
       "      <td>145.38</td>\n",
       "      <td>145.82</td>\n",
       "      <td>25692361</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-26</th>\n",
       "      <td>147.17</td>\n",
       "      <td>148.28</td>\n",
       "      <td>145.38</td>\n",
       "      <td>145.82</td>\n",
       "      <td>25692361</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-27</th>\n",
       "      <td>145.01</td>\n",
       "      <td>146.16</td>\n",
       "      <td>143.62</td>\n",
       "      <td>143.73</td>\n",
       "      <td>24761891</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-28</th>\n",
       "      <td>144.49</td>\n",
       "      <td>146.11</td>\n",
       "      <td>143.16</td>\n",
       "      <td>145.83</td>\n",
       "      <td>22082432</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-30</th>\n",
       "      <td>144.45</td>\n",
       "      <td>144.96</td>\n",
       "      <td>143.78</td>\n",
       "      <td>144.02</td>\n",
       "      <td>23024107</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              Open    High     Low   Close    Volume\n",
       "2016-06-01  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-02  153.58  155.45  152.89  155.45  27770715\n",
       "2016-06-03  154.34  154.45  153.46  153.93  25331662\n",
       "2016-06-04  154.34  154.45  153.46  153.93  25331662\n",
       "2016-06-05  154.34  154.45  153.46  153.93  25331662\n",
       "2016-06-06  153.90  155.81  153.78  154.45  26624926\n",
       "2016-06-07  155.02  155.98  154.48  155.37  21069647\n",
       "2016-06-08  155.25  155.54  154.40  154.99  21250798\n",
       "2016-06-09  155.19  155.19  146.02  148.98  64882657\n",
       "2016-06-10  145.74  146.09  142.51  145.42  72307330\n",
       "2016-06-11  145.74  146.09  142.51  145.42  72307330\n",
       "2016-06-12  145.74  146.09  142.51  145.42  72307330\n",
       "2016-06-13  147.16  147.45  145.15  146.59  34165445\n",
       "2016-06-14  147.50  147.50  143.84  145.16  31531232\n",
       "2016-06-15  143.32  144.48  142.21  144.29  32165373\n",
       "2016-06-16  143.78  144.50  142.20  142.27  50361093\n",
       "2016-06-17  143.66  146.74  143.66  146.34  32541404\n",
       "2016-06-18  143.66  146.74  143.66  146.34  32541404\n",
       "2016-06-19  143.66  146.74  143.66  146.34  32541404\n",
       "2016-06-20  146.87  146.87  144.94  145.01  24900073\n",
       "2016-06-21  145.52  146.07  144.61  145.87  21265751\n",
       "2016-06-22  145.77  146.70  145.12  145.63  19106294\n",
       "2016-06-23  145.13  147.16  145.11  146.28  35439389\n",
       "2016-06-24  147.17  148.28  145.38  145.82  25692361\n",
       "2016-06-25  147.17  148.28  145.38  145.82  25692361\n",
       "2016-06-26  147.17  148.28  145.38  145.82  25692361\n",
       "2016-06-27  145.01  146.16  143.62  143.73  24761891\n",
       "2016-06-28  144.49  146.11  143.16  145.83  22082432\n",
       "2016-06-29  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-30  144.45  144.96  143.78  144.02  23024107"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.asfreq('D',method='pad')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2016-06-05</th>\n",
       "      <td>154.34</td>\n",
       "      <td>154.45</td>\n",
       "      <td>153.46</td>\n",
       "      <td>153.93</td>\n",
       "      <td>25331662</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-12</th>\n",
       "      <td>145.74</td>\n",
       "      <td>146.09</td>\n",
       "      <td>142.51</td>\n",
       "      <td>145.42</td>\n",
       "      <td>72307330</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-19</th>\n",
       "      <td>143.66</td>\n",
       "      <td>146.74</td>\n",
       "      <td>143.66</td>\n",
       "      <td>146.34</td>\n",
       "      <td>32541404</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-26</th>\n",
       "      <td>147.17</td>\n",
       "      <td>148.28</td>\n",
       "      <td>145.38</td>\n",
       "      <td>145.82</td>\n",
       "      <td>25692361</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              Open    High     Low   Close    Volume\n",
       "2016-06-05  154.34  154.45  153.46  153.93  25331662\n",
       "2016-06-12  145.74  146.09  142.51  145.42  72307330\n",
       "2016-06-19  143.66  146.74  143.66  146.34  32541404\n",
       "2016-06-26  147.17  148.28  145.38  145.82  25692361"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.asfreq('W',method='pad')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2016-06-01 00:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 01:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 02:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 03:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 04:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 05:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 06:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 07:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 08:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 09:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 10:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 11:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 12:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 13:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 14:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 15:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 16:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 17:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 18:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 19:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 20:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 21:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 22:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-01 23:00:00</th>\n",
       "      <td>153.17</td>\n",
       "      <td>153.33</td>\n",
       "      <td>152.22</td>\n",
       "      <td>153.18</td>\n",
       "      <td>16404088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-02 00:00:00</th>\n",
       "      <td>153.58</td>\n",
       "      <td>155.45</td>\n",
       "      <td>152.89</td>\n",
       "      <td>155.45</td>\n",
       "      <td>27770715</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-02 01:00:00</th>\n",
       "      <td>153.58</td>\n",
       "      <td>155.45</td>\n",
       "      <td>152.89</td>\n",
       "      <td>155.45</td>\n",
       "      <td>27770715</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-02 02:00:00</th>\n",
       "      <td>153.58</td>\n",
       "      <td>155.45</td>\n",
       "      <td>152.89</td>\n",
       "      <td>155.45</td>\n",
       "      <td>27770715</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-02 03:00:00</th>\n",
       "      <td>153.58</td>\n",
       "      <td>155.45</td>\n",
       "      <td>152.89</td>\n",
       "      <td>155.45</td>\n",
       "      <td>27770715</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-02 04:00:00</th>\n",
       "      <td>153.58</td>\n",
       "      <td>155.45</td>\n",
       "      <td>152.89</td>\n",
       "      <td>155.45</td>\n",
       "      <td>27770715</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-02 05:00:00</th>\n",
       "      <td>153.58</td>\n",
       "      <td>155.45</td>\n",
       "      <td>152.89</td>\n",
       "      <td>155.45</td>\n",
       "      <td>27770715</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-28 19:00:00</th>\n",
       "      <td>144.49</td>\n",
       "      <td>146.11</td>\n",
       "      <td>143.16</td>\n",
       "      <td>145.83</td>\n",
       "      <td>22082432</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-28 20:00:00</th>\n",
       "      <td>144.49</td>\n",
       "      <td>146.11</td>\n",
       "      <td>143.16</td>\n",
       "      <td>145.83</td>\n",
       "      <td>22082432</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-28 21:00:00</th>\n",
       "      <td>144.49</td>\n",
       "      <td>146.11</td>\n",
       "      <td>143.16</td>\n",
       "      <td>145.83</td>\n",
       "      <td>22082432</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-28 22:00:00</th>\n",
       "      <td>144.49</td>\n",
       "      <td>146.11</td>\n",
       "      <td>143.16</td>\n",
       "      <td>145.83</td>\n",
       "      <td>22082432</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-28 23:00:00</th>\n",
       "      <td>144.49</td>\n",
       "      <td>146.11</td>\n",
       "      <td>143.16</td>\n",
       "      <td>145.83</td>\n",
       "      <td>22082432</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 00:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 01:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 02:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 03:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 04:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 05:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 06:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 07:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 08:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 09:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 10:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 11:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 12:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 13:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 14:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 15:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 16:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 17:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 18:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 19:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 20:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 21:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 22:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-29 23:00:00</th>\n",
       "      <td>144.71</td>\n",
       "      <td>145.13</td>\n",
       "      <td>142.28</td>\n",
       "      <td>143.68</td>\n",
       "      <td>31499368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-06-30 00:00:00</th>\n",
       "      <td>144.45</td>\n",
       "      <td>144.96</td>\n",
       "      <td>143.78</td>\n",
       "      <td>144.02</td>\n",
       "      <td>23024107</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>697 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                       Open    High     Low   Close    Volume\n",
       "2016-06-01 00:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 01:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 02:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 03:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 04:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 05:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 06:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 07:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 08:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 09:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 10:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 11:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 12:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 13:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 14:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 15:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 16:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 17:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 18:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 19:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 20:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 21:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 22:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-01 23:00:00  153.17  153.33  152.22  153.18  16404088\n",
       "2016-06-02 00:00:00  153.58  155.45  152.89  155.45  27770715\n",
       "2016-06-02 01:00:00  153.58  155.45  152.89  155.45  27770715\n",
       "2016-06-02 02:00:00  153.58  155.45  152.89  155.45  27770715\n",
       "2016-06-02 03:00:00  153.58  155.45  152.89  155.45  27770715\n",
       "2016-06-02 04:00:00  153.58  155.45  152.89  155.45  27770715\n",
       "2016-06-02 05:00:00  153.58  155.45  152.89  155.45  27770715\n",
       "...                     ...     ...     ...     ...       ...\n",
       "2016-06-28 19:00:00  144.49  146.11  143.16  145.83  22082432\n",
       "2016-06-28 20:00:00  144.49  146.11  143.16  145.83  22082432\n",
       "2016-06-28 21:00:00  144.49  146.11  143.16  145.83  22082432\n",
       "2016-06-28 22:00:00  144.49  146.11  143.16  145.83  22082432\n",
       "2016-06-28 23:00:00  144.49  146.11  143.16  145.83  22082432\n",
       "2016-06-29 00:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 01:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 02:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 03:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 04:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 05:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 06:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 07:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 08:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 09:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 10:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 11:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 12:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 13:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 14:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 15:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 16:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 17:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 18:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 19:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 20:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 21:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 22:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-29 23:00:00  144.71  145.13  142.28  143.68  31499368\n",
       "2016-06-30 00:00:00  144.45  144.96  143.78  144.02  23024107\n",
       "\n",
       "[697 rows x 5 columns]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.asfreq('H',method='pad')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h3 style=\"color:purple\"> generating DatetimeIndex with periods argument</h3>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2011-01-01 00:00:00', '2011-01-01 01:00:00',\n",
       "               '2011-01-01 02:00:00', '2011-01-01 03:00:00',\n",
       "               '2011-01-01 04:00:00', '2011-01-01 05:00:00',\n",
       "               '2011-01-01 06:00:00', '2011-01-01 07:00:00',\n",
       "               '2011-01-01 08:00:00', '2011-01-01 09:00:00',\n",
       "               '2011-01-01 10:00:00', '2011-01-01 11:00:00',\n",
       "               '2011-01-01 12:00:00', '2011-01-01 13:00:00',\n",
       "               '2011-01-01 14:00:00', '2011-01-01 15:00:00',\n",
       "               '2011-01-01 16:00:00', '2011-01-01 17:00:00',\n",
       "               '2011-01-01 18:00:00', '2011-01-01 19:00:00',\n",
       "               '2011-01-01 20:00:00', '2011-01-01 21:00:00',\n",
       "               '2011-01-01 22:00:00', '2011-01-01 23:00:00',\n",
       "               '2011-01-02 00:00:00', '2011-01-02 01:00:00',\n",
       "               '2011-01-02 02:00:00', '2011-01-02 03:00:00',\n",
       "               '2011-01-02 04:00:00', '2011-01-02 05:00:00',\n",
       "               '2011-01-02 06:00:00', '2011-01-02 07:00:00',\n",
       "               '2011-01-02 08:00:00', '2011-01-02 09:00:00',\n",
       "               '2011-01-02 10:00:00', '2011-01-02 11:00:00',\n",
       "               '2011-01-02 12:00:00', '2011-01-02 13:00:00',\n",
       "               '2011-01-02 14:00:00', '2011-01-02 15:00:00',\n",
       "               '2011-01-02 16:00:00', '2011-01-02 17:00:00',\n",
       "               '2011-01-02 18:00:00', '2011-01-02 19:00:00',\n",
       "               '2011-01-02 20:00:00', '2011-01-02 21:00:00',\n",
       "               '2011-01-02 22:00:00', '2011-01-02 23:00:00',\n",
       "               '2011-01-03 00:00:00', '2011-01-03 01:00:00',\n",
       "               '2011-01-03 02:00:00', '2011-01-03 03:00:00',\n",
       "               '2011-01-03 04:00:00', '2011-01-03 05:00:00',\n",
       "               '2011-01-03 06:00:00', '2011-01-03 07:00:00',\n",
       "               '2011-01-03 08:00:00', '2011-01-03 09:00:00',\n",
       "               '2011-01-03 10:00:00', '2011-01-03 11:00:00',\n",
       "               '2011-01-03 12:00:00', '2011-01-03 13:00:00',\n",
       "               '2011-01-03 14:00:00', '2011-01-03 15:00:00',\n",
       "               '2011-01-03 16:00:00', '2011-01-03 17:00:00',\n",
       "               '2011-01-03 18:00:00', '2011-01-03 19:00:00',\n",
       "               '2011-01-03 20:00:00', '2011-01-03 21:00:00',\n",
       "               '2011-01-03 22:00:00', '2011-01-03 23:00:00'],\n",
       "              dtype='datetime64[ns]', freq='H')"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rng = pd.date_range('1/1/2011', periods=72, freq='H')\n",
    "rng"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2011-01-01 00:00:00    9\n",
       "2011-01-01 01:00:00    0\n",
       "2011-01-01 02:00:00    3\n",
       "2011-01-01 03:00:00    5\n",
       "2011-01-01 04:00:00    9\n",
       "2011-01-01 05:00:00    6\n",
       "2011-01-01 06:00:00    1\n",
       "2011-01-01 07:00:00    9\n",
       "2011-01-01 08:00:00    2\n",
       "2011-01-01 09:00:00    5\n",
       "2011-01-01 10:00:00    0\n",
       "2011-01-01 11:00:00    6\n",
       "2011-01-01 12:00:00    2\n",
       "2011-01-01 13:00:00    3\n",
       "2011-01-01 14:00:00    1\n",
       "2011-01-01 15:00:00    3\n",
       "2011-01-01 16:00:00    1\n",
       "2011-01-01 17:00:00    8\n",
       "2011-01-01 18:00:00    5\n",
       "2011-01-01 19:00:00    2\n",
       "Freq: H, dtype: int32"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "ts = pd.Series(np.random.randint(0,10,len(rng)), index=rng)\n",
    "ts.head(20)"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
